package cn.itcast.shiro;

import org.apache.shiro.crypto.hash.Md5Hash;
import org.junit.Test;

import java.util.UUID;

public class App {
    /**
     *  md5加密, 不安全
     *
     *  明文      密文   （彩虹表）
     *  1     c4ca4238a0b923820dcc509a6f75849b  (撞库)
     */
    @Test
    public void md5() {
        // c4ca4238a0b923820dcc509a6f75849b
        Md5Hash hash = new Md5Hash("1");
        System.out.println(hash.toString());
    }

    // 加密，加盐  (采用)
    @Test
    public void md5Salt() {
        String salt = "lisi@export.com";
        System.out.println(new Md5Hash("1",salt));
    }

    // 加密，加盐, 加迭代次数
    @Test
    public void md5SaltIteration() {
        String salt = "lw@export.com";
        System.out.println(new Md5Hash("1",salt));
    }

    // 加密，加随机盐
    @Test
    public void md5RandomSalt() {
        String salt = UUID.randomUUID().toString();
        System.out.println("随机盐:"+salt);
        System.out.println(new Md5Hash("1",salt));
    }
}
